๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ค์ ์ํด ์ค๊ณ๋ ํ๋ ฅ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ถ์ฐ ์์คํ ๊ตฌ์ถ์ ์ํ ์ต์ข ์ ์ผ๊ด์ฑ ํจํด์ ๋ํ ์ฌ์ธต์ ์ธ ๋ถ์์ ๋๋ค.
๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ง์คํฐํ๊ธฐ: ์ต์ข ์ ์ผ๊ด์ฑ ํจํด ํ๊ตฌ
๋ถ์ฐ ์์คํ ์์ญ์์ ๋ชจ๋ ๋ ธ๋์ ๊ฑธ์ณ ์ ๋์ ์ธ ์ค์๊ฐ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ฌ์ฑํ๋ ๊ฒ์ ์์ฒญ๋ ์ด๋ ค์์ด ๋ ์ ์์ต๋๋ค. ์์คํ ์ด ๋ณต์ก์ฑ๊ณผ ๊ท๋ชจ ๋ฉด์์ ์ฑ์ฅํจ์ ๋ฐ๋ผ, ํนํ ๊ด๋ํ ์ง๋ฆฌ์ ๊ฑฐ๋ฆฌ์ ๋ค์ํ ์๊ฐ๋์ ๊ฑธ์ณ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์ถ๊ตฌํ๋ ๊ฒ์ ์ข ์ข ๊ฐ์ฉ์ฑ ๋ฐ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํฉ๋๋ค. ๋ฐ๋ก ์ด ์ง์ ์์ ์ต์ข ์ ์ผ๊ด์ฑ์ ๊ฐ๋ ์ด ๊ฐ๋ ฅํ๊ณ ์ค์ฉ์ ์ธ ํจ๋ฌ๋ค์์ผ๋ก ๋ฑ์ฅํฉ๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ ์ต์ข ์ ์ผ๊ด์ฑ์ด ๋ฌด์์ธ์ง, ์ ํ๋ ๋ถ์ฐ ์ํคํ ์ฒ์ ์ค์ํ์ง, ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ํจํด๊ณผ ์ ๋ต์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ชจ๋ธ ์ดํด
์ต์ข ์ ์ผ๊ด์ฑ์ ์ ๋๋ก ์ดํดํ๊ธฐ ์ ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ชจ๋ธ์ ๋ ๋์ landscape๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ถ์ฐ ์์คํ ์ ์ฌ๋ฌ ๋ถ๋ถ์์ ์ด๋ป๊ฒ, ์ธ์ ํ์๋๋์ง๋ฅผ ๊ท์ ํฉ๋๋ค.
๊ฐ๋ ฅํ ์ผ๊ด์ฑ
์์ฃผ ์ ํ์ฑ์ด๋ผ๊ณ ๋ ํ๋ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ๋ชจ๋ ์ฝ๊ธฐ๊ฐ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐ๊ธฐ๋ฅผ ๋ฐํํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ๊ฐ์ง ์์คํ ์์ ๋ชจ๋ ์์ ์ ๋จ์ผ ๊ธ๋ก๋ฒ ์์ ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฉ๋๋ค. ์ด๋ ์์ธก ๊ฐ๋ฅํ๊ณ ์ง๊ด์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋ ๊ฐ์ ์๋นํ ์กฐ์ ์ค๋ฒํค๋๊ฐ ํ์ํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
- ๋๊ธฐ ์๊ฐ ์ฆ๊ฐ: ์์ ์ ์ฌ๋ฌ ๋ ธ๋์์ ํ์ธ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ฏ๋ก ์๋ต ์๋๊ฐ ๋๋ ค์ง๋๋ค.
- ๊ฐ์ฉ์ฑ ๊ฐ์: ์์คํ ์ ์๋น ๋ถ๋ถ์ด ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ์ผ๋ถ ๋ ธ๋๊ฐ ์ฌ์ ํ ์๋ ์ค์ด๋๋ผ๋ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ๊ฐ ์ฐจ๋จ๋ ์ ์์ต๋๋ค.
- ํ์ฅ์ฑ ์ ํ: ํ์ํ ์กฐ์ ์ ์์คํ ์ด ํ์ฅ๋ ๋ ๋ณ๋ชฉ ํ์์ด ๋ ์ ์์ต๋๋ค.
๋ง์ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ , ํนํ ํธ๋์ญ์ ๋ณผ๋ฅจ์ด ๋๊ฑฐ๋ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํด ์งง์ ๋๊ธฐ ์๊ฐ ์ก์ธ์ค๊ฐ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์ ์ถฉ์ด ๊ธ์ง๋ ์ ์์ต๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ
์ต์ข ์ ์ผ๊ด์ฑ์ ๋ ์ฝํ ์ผ๊ด์ฑ ๋ชจ๋ธ๋ก, ์ฃผ์ด์ง ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ํ ์๋ก์ด ์ ๋ฐ์ดํธ๊ฐ ์ด๋ฃจ์ด์ง์ง ์์ผ๋ฉด ๊ฒฐ๊ตญ ํด๋น ํญ๋ชฉ์ ๋ํ ๋ชจ๋ ์ก์ธ์ค๋ ๋ง์ง๋ง ์ ๋ฐ์ดํธ๋ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋ ๊ฐ๋จํ ๋งํ๋ฉด ์ ๋ฐ์ดํธ๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์คํ ์ ํตํด ์ ํ๋ฉ๋๋ค. ์๋ก ๋ค๋ฅธ ๋ ธ๋๊ฐ ๋ฐ์ดํฐ์ ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ๋ณด์ ํ๋ ๊ธฐ๊ฐ์ด ์์ ์ ์์ง๋ง ์ด๋ฌํ ์ฐจ์ด๋ ์ผ์์ ์ ๋๋ค. ๊ฒฐ๊ตญ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ๋์ผํ ์ํ๋ก ์๋ ด๋ฉ๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ์ ์ฃผ์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋์ ๊ฐ์ฉ์ฑ: ๋ ธ๋๋ ๋ค๋ฅธ ๋ ธ๋์ ์ฆ์ ํต์ ํ ์ ์๋๋ผ๋ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ๊ณ์ ํ์ฉํ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ฑ๋ฅ: ์์ ์ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ก๋ถํฐ ์น์ธ์ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์์ผ๋ฏ๋ก ๋ ๋น ๋ฅด๊ฒ ์๋ฃํ ์ ์์ต๋๋ค.
- ํฅ์๋ ํ์ฅ์ฑ: ์กฐ์ ์ค๋ฒํค๋๊ฐ ์ค์ด๋ค์ด ์์คํ ์ ๋ณด๋ค ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
์ฆ๊ฐ์ ์ธ ์ผ๊ด์ฑ ๋ถ์กฑ์ด ์ฐ๋ ค์ค๋ฌ์ธ ์ ์์ง๋ง, ์ด๋ ๋๊ท๋ชจ ์์ ๋ฏธ๋์ด ํ๋ซํผ, ์ ์ ์๊ฑฐ๋ ๊ฑฐ๋ ๊ธฐ์ , ๊ธ๋ก๋ฒ ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ๋ฅผ ํฌํจํ ๋ง์ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ์์คํ ์ด ์์กดํ๋ ๋ชจ๋ธ์ ๋๋ค.
CAP ์ ๋ฆฌ์ ์ต์ข ์ ์ผ๊ด์ฑ
์ต์ข ์ ์ผ๊ด์ฑ๊ณผ ์์คํ ์ค๊ณ ๊ฐ์ ๊ด๊ณ๋ ๋ณธ์ง์ ์ผ๋ก CAP ์ ๋ฆฌ์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋ถ์ฐ ์์คํ ์ ๊ธฐ๋ณธ ์ ๋ฆฌ์ธ ์ด ์ ๋ฆฌ๋ ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ๋ค์ ์ธ ๊ฐ์ง ๋ณด์ฅ ์ค ๋ ๊ฐ์ง๋ง ๋์์ ์ ๊ณตํ ์ ์๋ค๊ณ ๋ช ์ํฉ๋๋ค.
- ์ผ๊ด์ฑ(C): ๋ชจ๋ ์ฝ๊ธฐ๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐ๊ธฐ ๋๋ ์ค๋ฅ๋ฅผ ์์ ํฉ๋๋ค. (์ด๋ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์๋ฏธํฉ๋๋ค.)
- ๊ฐ์ฉ์ฑ(A): ๋ชจ๋ ์์ฒญ์ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐ๊ธฐ๋ฅผ ํฌํจํ๋ค๋ ๋ณด์ฅ ์์ด (์ค๋ฅ๊ฐ ์๋) ์๋ต์ ์์ ํฉ๋๋ค.
- ํํฐ์ ๋ด์ฑ(P): ์์คํ ์ ๋ ธ๋ ๊ฐ์ ๋คํธ์ํฌ์์ ์์์ ๋ฉ์์ง๊ฐ ์ญ์ (๋๋ ์ง์ฐ)๋๋๋ผ๋ ๊ณ์ ์๋ํฉ๋๋ค.
์ค์ ๋ก ๋คํธ์ํฌ ํํฐ์ (P)์ ๋ชจ๋ ๋ถ์ฐ ์์คํ , ํนํ ๊ธ๋ก๋ฒ ์์คํ ์์ ํ์ค์ ๋๋ค. ๋ฐ๋ผ์ ์ค๊ณ์๋ ํํฐ์ ์ด ๋ฐ์ํ ๋ ์ผ๊ด์ฑ(C) ๋๋ ๊ฐ์ฉ์ฑ(A) ์ค ์ฐ์ ์์๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
- CP ์์คํ : ์ด๋ฌํ ์์คํ ์ ์ผ๊ด์ฑ ๋ฐ ํํฐ์ ๋ด์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ๋คํธ์ํฌ ํํฐ์ ์ค์ ๋๋จธ์ง ๋ ธ๋ ๊ฐ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ฐ์ฉ์ฑ์ ํฌ์ํ ์ ์์ต๋๋ค.
- AP ์์คํ : ์ด๋ฌํ ์์คํ ์ ๊ฐ์ฉ์ฑ ๋ฐ ํํฐ์ ๋ด์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ๋คํธ์ํฌ ํํฐ์ ์ค์๋ ๊ณ์ ์ฌ์ฉํ ์ ์์ง๋ง ์ด๋ ์ข ์ข ์ฆ๊ฐ์ ์ธ ์ผ๊ด์ฑ์ ํฌ์ํ์ฌ ์ต์ข ์ ์ผ๊ด์ฑ์ผ๋ก ์ด์ด์ง๋๋ค.
๋์ ๊ฐ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ ๋ชฉํ๋ก ํ๋ ๋๋ถ๋ถ์ ์ต์ ๊ธ๋ก๋ฒ ๋ถ์ฐ ์์คํ ์ ๋ณธ์ง์ ์ผ๋ก AP ์์คํ ์ ์งํฅํ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ์ต์ข ์ ์ผ๊ด์ฑ์ ์์ฉํฉ๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ์ด ์ ํฉํ ๊ฒฝ์ฐ๋ ์ธ์ ์ ๋๊น?
์ต์ข ์ ์ผ๊ด์ฑ์ ๋ชจ๋ ๋ถ์ฐ ์์คํ ์ ๋ํ ๋ง๋ณํต์น์ฝ์ด ์๋๋๋ค. ๊ทธ ์ ํฉ์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ ์ฌํญ๊ณผ ์ค๋๋ ๋ฐ์ดํฐ์ ๋ํ ํ์ฉ ์ค์ฐจ์ ํฌ๊ฒ ์ข์ฐ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํนํ ์ ํฉํฉ๋๋ค.
- ์ฝ๊ธฐ ์์ ๋์ด ๋ง์ ์ํฌ๋ก๋: ์ฝ๊ธฐ๊ฐ ์ฐ๊ธฐ๋ณด๋ค ํจ์ฌ ๋ ๋น๋ฒํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ํฐ ์ด์ ์ ์ป์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ ์นดํ๋ก๊ทธ, ์์ ๋ฏธ๋์ด ํผ๋ ๋๋ ๋ด์ค ๊ธฐ์ฌ ํ์๊ฐ ์์ต๋๋ค.
- ๋นํต์ฌ ๋ฐ์ดํฐ: ์ ํ ์ง์ฐ์ด๋ ์ผ์์ ์ธ ๋ถ์ผ์น๊ฐ ์ค์ํ ๋น์ฆ๋์ค ๋๋ ์ฌ์ฉ์ ์ํฅ์ผ๋ก ์ด์ด์ง์ง ์๋ ๋ฐ์ดํฐ. ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ , ์ธ์ ๋ฐ์ดํฐ ๋๋ ๋ถ์ ์งํ๋ฅผ ์๊ฐํด๋ณด์ธ์.
- ๊ธ๋ก๋ฒ ๋ฐฐํฌ: ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์ข ๊ฐ์ฉ์ฑ๊ณผ ์งง์ ๋๊ธฐ ์๊ฐ์ ์ฐ์ ์ํด์ผ ํ๋ฏ๋ก ์ต์ข ์ ์ผ๊ด์ฑ์ด ํ์ํ ์ ์ถฉ์์ ๋๋ค.
- ๋์ ๊ฐ๋ ์๊ฐ์ด ํ์ํ ์์คํ : ํผํฌ ์ผํ ์์ฆ ๋์ ์ก์ธ์ค ๊ฐ๋ฅํด์ผ ํ๋ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ ๋๋ ์ค์ ์ธํ๋ผ ์๋น์ค.
๋ฐ๋๋ก ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์๊ตฌํ๋ ์์คํ ์๋ ๊ธ์ต ๊ฑฐ๋(์: ์ํ ์๊ณ , ์ฃผ์ ๊ฑฐ๋), ์ด๊ณผ ํ๋งค๋ฅผ ๋ฐฉ์งํด์ผ ํ๋ ์ฌ๊ณ ๊ด๋ฆฌ ๋๋ ์์ ์ ์๊ฒฉํ ์์๊ฐ ๊ฐ์ฅ ์ค์ํ ์์คํ ์ด ์์ต๋๋ค.
์ฃผ์ ์ต์ข ์ ์ผ๊ด์ฑ ํจํด
์ต์ข ์ ์ผ๊ด์ฑ์ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๊ณ ๊ด๋ฆฌํ๋ ค๋ฉด ํน์ ํจํด๊ณผ ๊ธฐ์ ์ ์ฑํํด์ผ ํฉ๋๋ค. ํต์ฌ ๊ณผ์ ๋ ์๋ก ๋ค๋ฅธ ๋ ธ๋๊ฐ ๋ถ๊ธฐ๋ ๋ ๋ฐ์ํ๋ ์ถฉ๋์ ์ฒ๋ฆฌํ๊ณ ์ต์ข ์ ์ธ ์๋ ด์ ๋ณด์ฅํ๋ ๋ฐ ์์ต๋๋ค.
1. ๋ณต์ ๋ฐ ๊ฐ์ญ ํ๋กํ ์ฝ
๋ณต์ ๋ ๋ถ์ฐ ์์คํ ์ ๊ธฐ๋ณธ์ ๋๋ค. ์ต์ข ์ ์ผ๋ก ์ผ๊ด๋ ์์คํ ์์ ๋ฐ์ดํฐ๋ ์ฌ๋ฌ ๋ ธ๋์ ๋ณต์ ๋ฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ์์ค ๋ ธ๋์์ ๋ค๋ฅธ ๋ณต์ ๋ณธ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ฐ์ญ ํ๋กํ ์ฝ(์ ์ผ๋ณ ํ๋กํ ์ฝ์ด๋ผ๊ณ ๋ ํจ)์ ์ด๋ฅผ ๋ฌ์ฑํ๋ ์ผ๋ฐ์ ์ด๊ณ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ์ญ ํ๋กํ ์ฝ์์:
- ๊ฐ ๋ ธ๋๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์์๋ก ๋ค๋ฅธ ๋ ธ๋์ ํ์ ์งํฉ๊ณผ ํต์ ํฉ๋๋ค.
- ํต์ ํ๋ ๋์ ๋ ธ๋๋ ํ์ฌ ์ํ์ ๋ณด์ ํ ์ ๋ฐ์ดํธ์ ๋ํ ์ ๋ณด๋ฅผ ๊ตํํฉ๋๋ค.
- ์ด ํ๋ก์ธ์ค๋ ๋ชจ๋ ๋ ธ๋์ ์ต์ ์ ๋ณด๊ฐ ์์ ๋๊น์ง ๊ณ์๋ฉ๋๋ค.
์: Apache Cassandra๋ ๋ ธ๋ ๊ฒ์ ๋ฐ ๋ฐ์ดํฐ ์ ํ๋ฅผ ์ํด ํผ์ด ํฌ ํผ์ด ๊ฐ์ญ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค. ํด๋ฌ์คํฐ์ ๋ ธ๋๋ ์ํ ๋ฐ ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ง์์ ์ผ๋ก ๊ตํํ์ฌ ์ ๋ฐ์ดํธ๊ฐ ์์คํ ์ ์ฒด์ ๊ถ๊ทน์ ์ผ๋ก ํ์ฐ๋๋๋ก ํฉ๋๋ค.
2. ๋ฒกํฐ ํด๋ก
๋ฒกํฐ ํด๋ก์ ๋ถ์ฐ ์์คํ ์์ ์ธ๊ณผ ๊ด๊ณ ๋ฐ ๋์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์งํ๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ์์คํ ์ ๊ฐ ํ๋ก์ธ์ค์ ๋ํด ํ๋์ ์นด์ดํฐ ๋ฒกํฐ๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ํ๋ก์ธ์ค๊ฐ ๋ก์ปฌ ์ํ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ๋ฒกํฐ์์ ์์ฒด ์นด์ดํฐ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋ ํ์ฌ ๋ฒกํฐ ํด๋ก์ ํฌํจํฉ๋๋ค. ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด ํ๋ก์ธ์ค๋ ์์ฒด ์นด์ดํฐ์ ๊ฐ ํ๋ก์ธ์ค์ ๋ํด ๋ฐ์ ์นด์ดํฐ์ ์ต๋๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฒกํฐ ํด๋ก์ ์ ๋ฐ์ดํธํฉ๋๋ค.
๋ฒกํฐ ํด๋ก์ ๋ค์์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ธ๊ณผ์ ์ผ๋ก ๊ด๋ จ๋ ์ด๋ฒคํธ: ๋ฒกํฐ ํด๋ก A๊ฐ ๋ฒกํฐ ํด๋ก B๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด(๊ตฌ์ฑ ์์๋ณ๋ก) ์ด๋ฒคํธ A๋ ์ด๋ฒคํธ B ์ด์ ์ ๋ฐ์ํ์ต๋๋ค.
- ๋์ ์ด๋ฒคํธ: ๋ฒกํฐ ํด๋ก A๊ฐ B๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ง ์๊ณ B๊ฐ A๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ง ์์ผ๋ฉด ์ด๋ฒคํธ๋ ๋์์ ๋๋ค.
์ด ์ ๋ณด๋ ์ถฉ๋ ํด๊ฒฐ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์: Amazon DynamoDB์ ๊ฐ์ ๋ง์ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋(๋ด๋ถ์ ์ผ๋ก) ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ฒ์ ์ ์ถ์ ํ๊ณ ๋ณํฉํด์ผ ํ ์ ์๋ ๋์ ์ฐ๊ธฐ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ๋ฒกํฐ ํด๋ก ํ์์ ์ฌ์ฉํฉ๋๋ค.
3. Last-Writer-Wins(LWW)
Last-Writer-Wins(LWW)๋ ๊ฐ๋จํ ์ถฉ๋ ํด๊ฒฐ ์ ๋ต์ ๋๋ค. ๋์ผํ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ํด ์ฌ๋ฌ ์ถฉ๋ํ๋ ์ฐ๊ธฐ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ต์ ํ์์คํฌํ๊ฐ ์๋ ์ฐ๊ธฐ๊ฐ ์ต์ข ๋ฒ์ ์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ '์ต์ ' ํ์์คํฌํ๋ฅผ ๊ฒฐ์ ํ๋ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
- ํ์์คํฌํ ์์ฑ: ํ์์คํฌํ๋ ํด๋ผ์ด์ธํธ, ์ฐ๊ธฐ๋ฅผ ์์ ํ๋ ์๋ฒ ๋๋ ์ค์ ์ง์ค์ ์๊ฐ ์๋น์ค์์ ์์ฑํ ์ ์์ต๋๋ค.
- ๋ฌธ์ ์ : ๋ ธ๋ ๊ฐ์ ํด๋ก ๋๋ฆฌํํธ๋ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ํด๋ก์ด ๋๊ธฐํ๋์ง ์์ผ๋ฉด '๋์ค' ์ฐ๊ธฐ๊ฐ '์ด์ '์ ๋ํ๋ ์ ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋๊ธฐํ๋ ํด๋ก(์: NTP) ๋๋ ๋ฌผ๋ฆฌ์ ์๊ฐ๊ณผ ๋ ผ๋ฆฌ์ ์ฆ๋ถ์ ๊ฒฐํฉํ ํ์ด๋ธ๋ฆฌ๋ ๋ ผ๋ฆฌ ํด๋ก์ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ต๋๋ค.
์: ๋ณต์ ๋ฅผ ์ํด ๊ตฌ์ฑ๋ Redis๋ ์ฅ์ ์กฐ์น ์๋๋ฆฌ์ค ์ค์ ์ถฉ๋์ ํด๊ฒฐํ๊ธฐ ์ํด LWW๋ฅผ ์์ฃผ ์ฌ์ฉํฉ๋๋ค. ๋ง์คํฐ๊ฐ ์คํจํ๋ฉด ๋ณต์ ๋ณธ์ด ์ ๋ง์คํฐ๊ฐ ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ณต์ ๋ณธ์์ ๋์์ ์ฐ๊ธฐ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ต์ ํ์์คํฌํ๊ฐ ์๋ ์ฐ๊ธฐ๊ฐ ์น๋ฆฌํฉ๋๋ค.
4. ์ธ๊ณผ์ ์ผ๊ด์ฑ
์๋ฐํ ๋งํ๋ฉด '์ต์ข ์ '์ ์๋์ง๋ง, ์ธ๊ณผ์ ์ผ๊ด์ฑ์ ๊ธฐ๋ณธ ์ต์ข ์ ์ผ๊ด์ฑ๋ณด๋ค ๋ ๊ฐ๋ ฅํ ๋ณด์ฅ์ด๋ฉฐ ์ต์ข ์ ์ผ๋ก ์ผ๊ด๋ ์์คํ ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ํ๋์ ์ด๋ฒคํธ๊ฐ ๋ค๋ฅธ ์ด๋ฒคํธ๋ณด๋ค ์ธ๊ณผ์ ์ผ๋ก ๋จผ์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ์ด๋ฒคํธ๋ฅผ ๋ณด๋ ๋ชจ๋ ๋ ธ๋๋ ์ฒซ ๋ฒ์งธ ์ด๋ฒคํธ๋ ๋ด์ผ ํฉ๋๋ค. ์ธ๊ณผ์ ์ผ๋ก ๊ด๋ จ์ด ์๋ ์์ ์ ์๋ก ๋ค๋ฅธ ๋ ธ๋์์ ์๋ก ๋ค๋ฅธ ์์๋ก ๋ณผ ์ ์์ต๋๋ค.
์ด๋ ์ข ์ข ๋ฒกํฐ ํด๋ก ๋๋ ์ ์ฌํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์์ ์ ์ธ๊ณผ ๊ด๊ณ ๊ธฐ๋ก์ ์ถ์ ํ์ฌ ๊ตฌํ๋ฉ๋๋ค.
์: ์ ๊ฐ์ฒด์ ๋ํ Amazon S3์ ์ฝ๊ธฐ ํ ์ฐ๊ธฐ ์ผ๊ด์ฑ๊ณผ ๋ฎ์ด์ฐ๊ธฐ PUT ๋ฐ DELETE์ ๋ํ ์ต์ข ์ ์ผ๊ด์ฑ์ ์ผ๋ถ ์์ ์ ๋ํด ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์ ๊ณตํ๊ณ ๋ค๋ฅธ ์์ ์ ๋ํด ๋ ์ฝํ ์ผ๊ด์ฑ์ ์ ๊ณตํ๋ ์์คํ ์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ข ์ข ์ธ๊ณผ ๊ด๊ณ์ ์์กดํฉ๋๋ค.
5. ์งํฉ ์กฐ์ (CRDT)
์ถฉ๋ ์๋ ๋ณต์ ๋ฐ์ดํฐ ํ์(CRDT)์ ๋ณต์กํ ์ถฉ๋ ํด๊ฒฐ ๋ ผ๋ฆฌ๋ ์ค์ ๊ถํ ์์ด ๋ณต์ ๋ณธ์ ๋ํ ๋์ ์ ๋ฐ์ดํธ๋ฅผ ์๋์ผ๋ก ๋ณํฉํ ์ ์๋๋ก ์ค๊ณ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ต์ข ์ ์ผ๊ด์ฑ ๋ฐ ๋์ ๊ฐ์ฉ์ฑ์ ์ํด ์ค๊ณ๋์์ต๋๋ค.
CRDT๋ ๋ ๊ฐ์ง ์ฃผ์ ํํ๋ก ์ ๊ณต๋ฉ๋๋ค.
- ์ํ ๊ธฐ๋ฐ CRDT(CvRDT): ๋ณต์ ๋ณธ์ ์ ์ฒด ์ํ๋ฅผ ๊ตํํฉ๋๋ค. ๋ณํฉ ์์ ์ ๊ฒฐํฉ์ , ๊ตํ์ ๋ฐ ๋ฉฑ๋ฑ์ ์ ๋๋ค.
- ์์ ๊ธฐ๋ฐ CRDT(OpRDT): ๋ณต์ ๋ณธ์ ์์ ์ ๊ตํํฉ๋๋ค. ๋ฉ์ปค๋์ฆ(์: ์ธ๊ณผ์ ๋ธ๋ก๋์บ์คํธ)์ ์์ ์ด ์ธ๊ณผ์ ์์๋ก ๋ชจ๋ ๋ณต์ ๋ณธ์ ์ ๋ฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์: ๋ถ์ฐ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ Riak KV๋ ์นด์ดํฐ, ์งํฉ, ๋งต ๋ฐ ๋ชฉ๋ก์ ๋ํ CRDT๋ฅผ ์ง์ํ์ฌ ๊ฐ๋ฐ์๊ฐ ์๋ก ๋ค๋ฅธ ๋ ธ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ ๋ฐ์ดํธํ๊ณ ์๋์ผ๋ก ๋ณํฉํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ํฉ๋๋ค.
6. ๋ณํฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
CRDT์ ์ ์ฌํ๊ฒ ์ผ๋ถ ์์คํ ์ ๋์ ์์ ํ์๋ ๋ณํฉ๋๋๋ก ์ค๊ณ๋ ํน์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ข ์ข ์ง๋ฅ์ ์ผ๋ก ๊ฒฐํฉํ ์ ์๋ ๋ฐ์ดํฐ ๋ฒ์ ๋๋ ๋ธํ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
- ์์ ๋ณํ(OT): ๊ณต๋ ํธ์ง ์์คํ (์: Google ๋ฌธ์)์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ OT๋ ์ฌ๋ฌ ์ฌ์ฉ์์ ๋์ ํธ์ง์ด ์์๊ฐ ๋ง์ง ์๊ฒ ๋์ฐฉํ๋๋ผ๋ ์ผ๊ด๋ ์์๋ก ์ ์ฉ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๋ฒ์ ๋ฒกํฐ: ๋ ๊ฐ๋จํ ํํ์ ๋ฒกํฐ ํด๋ก์ธ ๋ฒ์ ๋ฒกํฐ๋ ๋ณต์ ๋ณธ์ ์๋ ค์ง ๋ฐ์ดํฐ ๋ฒ์ ์ ์ถ์ ํ๊ณ ์ถฉ๋์ ๊ฐ์งํ๊ณ ํด๊ฒฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์: CRDT๋ ์๋์ง๋ง Google ๋ฌธ์๊ฐ ๋์ ํธ์ง์ ์ฒ๋ฆฌํ๊ณ ์ฌ์ฉ์์ ๋๊ธฐํํ๋ ๋ฐฉ์์ ๋ชจ๋ ์ฌ๋์ด ์ผ๊ด๋๊ฒ ์ ๋ฐ์ดํธ๋ ๋ฌธ์๋ฅผ ๋ณผ ์ ์๋๋ก ๋ณด์ฅํ๋ ๋ณํฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ์ ์ธ ์์ ๋๋ค.
7. ์ ์กฑ์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
์ข
์ข
๊ฐ๋ ฅํ ์ผ๊ด์ฑ๊ณผ ๊ด๋ จ์ด ์์ง๋ง ์ ์กฑ์ ๋ฉ์ปค๋์ฆ์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ ์กฑ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ์ต์ข
์ ์ผ๊ด์ฑ์ ๋ง๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค. Cassandra์ ๊ฐ์ ์์คํ
์์ ์ฐ๊ธฐ ์์
์ ๋
ธ๋์ ๊ณผ๋ฐ์(W)์์ ์น์ธํ ๊ฒฝ์ฐ ์ฑ๊ณตํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์ผ๋ฉฐ, ์ฝ๊ธฐ ์์
์ ๋
ธ๋์ ๊ณผ๋ฐ์(R)์์ ์๋ต์ ๋ฐ์ ์ ์๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. W + R > N(์ฌ๊ธฐ์ N์ ์ด ๋ณต์ ๋ณธ ์)์ธ ๊ฒฝ์ฐ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ W + R <= N์ธ ๊ฐ์ ์ ํํ๋ฉด ๊ฐ์ฉ์ฑ์ ๋์ด๊ณ ์ต์ข
์ ์ผ๊ด์ฑ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ์ ์ํด์๋ ์ผ๋ฐ์ ์ผ๋ก:
- ์ฐ๊ธฐ: ๋จ์ผ ๋ ธ๋(W=1) ๋๋ ์ ์ ์์ ๋ ธ๋์์ ์น์ธํ ์ ์์ต๋๋ค.
- ์ฝ๊ธฐ: ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ ธ๋์์ ์ ๊ณต๋ ์ ์์ผ๋ฉฐ, ๋ถ์ผ์น๊ฐ ์๋ ๊ฒฝ์ฐ ์ฝ๊ธฐ ์์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์กฐ์ ์ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
์: Apache Cassandra๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ ์ผ๊ด์ฑ ์์ค์ ์กฐ์ ํ ์ ์์ต๋๋ค. ๋์ ๊ฐ์ฉ์ฑ๊ณผ ์ต์ข ์ ์ผ๊ด์ฑ์ ์ํด W=1(ํ ๋ ธ๋์์ ์น์ธ๋ ์ฐ๊ธฐ) ๋ฐ R=1(ํ ๋ ธ๋์์ ์ฝ๊ธฐ)์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฝ๊ธฐ ๋ณต๊ตฌ๋ฅผ ์ํํ์ฌ ๋ถ์ผ์น๋ฅผ ํด๊ฒฐํฉ๋๋ค.
8. ๋ฐฑ๊ทธ๋ผ์ด๋ ์กฐ์ /์ฝ๊ธฐ ๋ณต๊ตฌ
์ต์ข ์ ์ผ๋ก ์ผ๊ด๋ ์์คํ ์์๋ ๋ถ์ผ์น๊ฐ ๋ถ๊ฐํผํฉ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ์กฐ์ ๋๋ ์ฝ๊ธฐ ๋ณต๊ตฌ๋ ์ด๋ฌํ ๋ถ์ผ์น๋ฅผ ๊ฐ์งํ๊ณ ์์ ํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
- ์ฝ๊ธฐ ๋ณต๊ตฌ: ์ฝ๊ธฐ ์์ฒญ์ด ์ด๋ฃจ์ด์ง ๋ ์ฌ๋ฌ ๋ณต์ ๋ณธ์ด ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ์์คํ ์ ํด๋ผ์ด์ธํธ์ ์ต์ ๋ฒ์ ์ ๋ฐํํ๊ณ ๋น๋๊ธฐ์ ์ผ๋ก ์ค๋๋ ๋ณต์ ๋ณธ์ ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์๊ฑฐ: ์ฃผ๊ธฐ์ ์ธ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ ๋ณต์ ๋ณธ์์ ๋ถ์ผ์น๋ฅผ ๊ฒ์ํ๊ณ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ์ ์์ํ ์ ์์ต๋๋ค.
์: Amazon DynamoDB๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ถ์ผ์น๋ฅผ ๊ฐ์งํ๊ณ ๋ณต๊ตฌํ๊ธฐ ์ํ ์ ๊ตํ ๋ด๋ถ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๋ช ์์ ์ธ ํด๋ผ์ด์ธํธ ๊ฐ์ ์์ด ๋ฐ์ดํฐ๊ฐ ๊ถ๊ทน์ ์ผ๋ก ์๋ ด๋๋๋ก ํฉ๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ์ ๋ํ ๊ณผ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
๊ฐ๋ ฅํ์ง๋ง ์ต์ข ์ ์ผ๊ด์ฑ์ ์ํคํ ํธ์ ๊ฐ๋ฐ์๊ฐ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํ๋ ์์ฒด์ ์ธ ๊ณผ์ ๋ฅผ ์ ์ํฉ๋๋ค.
1. ์ค๋๋ ์ฝ๊ธฐ
์ต์ข ์ ์ผ๊ด์ฑ์ ๊ฐ์ฅ ์ง์ ์ ์ธ ๊ฒฐ๊ณผ๋ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ก ์ธํด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ผ๊ด์ฑ ์๋ ์ฌ์ฉ์ ๊ฒฝํ: ์ฌ์ฉ์๋ ์ฝ๊ฐ ์ค๋๋ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ด ํผ๋์ค๋ฝ๊ฑฐ๋ ์ค๋ง์ค๋ฌ์ธ ์ ์์ต๋๋ค.
- ์๋ชป๋ ๊ฒฐ์ : ์ค์ํ ๊ฒฐ์ ์ ์ํด ์ด ๋ฐ์ดํฐ์ ์์กดํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ์ด ์๋ ์ ํ์ ํ ์ ์์ต๋๋ค.
์ํ: ์ฝ๊ธฐ ๋ณต๊ตฌ, ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์๋ ํด๋ผ์ด์ธํธ ์ธก ์บ์ฑ ๋๋ ์ค์ ๊ฒฝ๋ก์ ๋ํ ๋ณด๋ค ๊ฐ๋ ฅํ ์ผ๊ด์ฑ ๋ชจ๋ธ(์: ์ธ๊ณผ์ ์ผ๊ด์ฑ)๊ณผ ๊ฐ์ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ฝ๊ฐ ์ง์ฐ๋ ์ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ๋ช ํํ๊ฒ ์ ๋ฌํฉ๋๋ค.
2. ์ถฉ๋ํ๋ ์ฐ๊ธฐ
์ฌ๋ฌ ์ฌ์ฉ์ ๋๋ ์๋น์ค๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ๋๊ธฐํํ๊ธฐ ์ ์ ์๋ก ๋ค๋ฅธ ๋ ธ๋์์ ๋์ผํ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋์์ ์ ๋ฐ์ดํธํ๋ฉด ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์ถฉ๋์ ํด๊ฒฐํ๋ ค๋ฉด LWW, CRDT ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ ๋ณํฉ ๋ ผ๋ฆฌ์ ๊ฐ์ ๊ฐ๋ ฅํ ์ ๋ต์ด ํ์ํฉ๋๋ค.
์: ๋ ์ฌ์ฉ์๊ฐ ์คํ๋ผ์ธ ์ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์ผํ ๋ฌธ์๋ฅผ ํธ์งํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ๋ ์ฌ์ฉ์ ๋ชจ๋ ์๋ก ๋ค๋ฅธ ์น์ ์ ๋จ๋ฝ์ ์ถ๊ฐํ ๋ค์ ๋์์ ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ์์คํ ์ ์ด๋ ๊ฒ๋ ์์ง ์๊ณ ์ด๋ฌํ ์ถ๊ฐ ์ฌํญ์ ๋ณํฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
3. ๋๋ฒ๊น ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ
์ต์ข ์ ์ผ๋ก ์ผ๊ด๋ ์์คํ ์ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๋ ๊ฒ์ ํจ์ฌ ๋ ๋ณต์กํ ์ ์์ต๋๋ค. ์ ๋ฐ์ดํธ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ๊ณ , ํน์ ๋ ธ๋์ ์ค๋๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ด์ ๋ฅผ ์ดํดํ๊ฑฐ๋, ์ถฉ๋ ํด๊ฒฐ ์คํจ๋ฅผ ์ง๋จํ๋ ค๋ฉด ์ ๊ตํ ๋๊ตฌ์ ๊น์ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ: ๋ฐ์ดํฐ ๋ณต์ ์ง์ฐ, ์ถฉ๋๋ฅ ๋ฐ ๋ณต์ ๋ฉ์ปค๋์ฆ์ ์ํ์ ๋ํ ๊ฐ์์ฑ์ ์ ๊ณตํ๋ ํฌ๊ด์ ์ธ ๋ก๊น , ๋ถ์ฐ ์ถ์ ๋ฐ ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ ํฌ์ํฉ๋๋ค.
4. ๊ตฌํ์ ๋ณต์ก์ฑ
์ต์ข ์ ์ผ๊ด์ฑ์ ๊ฐ๋ ์ ๋งค๋ ฅ์ ์ด์ง๋ง ์ฌ๋ฐ๋ฅด๊ณ ๊ฐ๋ ฅํ๊ฒ ๊ตฌํํ๋ ๊ฒ์ ๋ณต์กํ ์ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ํจํด์ ์ ํํ๊ณ , ์์ง ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์์คํ ์ด ๊ถ๊ทน์ ์ผ๋ก ์๋ ด๋๋๋ก ํ๋ ค๋ฉด ์ ์คํ ์ค๊ณ์ ํ ์คํธ๊ฐ ํ์ํฉ๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ: LWW์ ๊ฐ์ ๋ ๊ฐ๋จํ ์ต์ข ์ ์ผ๊ด์ฑ ํจํด์ผ๋ก ์์ํ๊ณ ์๊ตฌ ์ฌํญ์ด ์งํํ๊ณ ๋ ๋ง์ ๊ฒฝํ์ ์์ผ๋ฉด์ CRDT์ ๊ฐ์ ๋ ์ ๊ตํ ํจํด์ ์ ์ง์ ์ผ๋ก ๋์ ํฉ๋๋ค. ์ด๋ฌํ ๋ณต์ก์ฑ ์ค ์ผ๋ถ๋ฅผ ์ถ์ํํ๋ ๊ด๋ฆฌํ ์๋น์ค๋ฅผ ํ์ฉํฉ๋๋ค.
5. ๋น์ฆ๋์ค ๋ ผ๋ฆฌ์ ๋ฏธ์น๋ ์ํฅ
๋น์ฆ๋์ค ๋ ผ๋ฆฌ๋ ์ต์ข ์ ์ผ๊ด์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณํด์ผ ํฉ๋๋ค. ์ ํํ๊ณ ์ต์ ์ํ์ ์์กดํ๋ ์์ ์ ์คํจํ๊ฑฐ๋ ์๊ธฐ์น ์๊ฒ ์๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณ ๊ฐ์ด ํญ๋ชฉ์ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ ๋ ์ฆ์ ์ฌ๊ณ ๋ฅผ ์ค์ด๋ ์ ์ ์๊ฑฐ๋ ์์คํ ์ ์ฌ๊ณ ์ ๋ฐ์ดํธ๊ฐ ๋ชจ๋ ์๋น์ค ๋ฐ ๋ณต์ ๋ณธ์์ ๊ฐ๋ ฅํ๊ฒ ์ผ๊ด๋์ง ์์ผ๋ฉด ์ด๊ณผ ํ๋งค๋ ์ ์์ต๋๋ค.
์ํ: ์์ ๋ถ์ผ์น์ ๋ด์ฑ์ด ์๋ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ๋ฅผ ์ค๊ณํฉ๋๋ค. ์ค์ํ ์์ ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ์ต์ข ์ ์ผ๋ก ์ผ๊ด๋๋๋ผ๋ Saga ํจํด๊ณผ ๊ฐ์ ํจํด์ ์ฌ์ฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ ๋ถ์ฐ ํธ๋์ญ์ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
์ต์ข ์ ์ผ๊ด์ฑ์ ์ ์ญ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์ต์ข ์ ์ผ๊ด์ฑ์ ์์ฉํ๋ ๊ฒ์ด ์ข ์ข ํ์ํฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค.
1. ๋ฐ์ดํฐ ๋ฐ ์ํฌ๋ก๋๋ฅผ ์ดํดํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ก์ธ์ค ํจํด์ ์ฒ ์ ํ ๋ถ์ํฉ๋๋ค. ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ต์ข ์ ์ผ๊ด์ฑ์ ํ์ฉํ ์ ์๋์ง, ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ ๊ฐ๋ ฅํ ๋ณด์ฆ์ ์๊ตฌํ๋์ง ์๋ณํฉ๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ญ์ ์ผ๋ก ๊ฐ๋ ฅํ๊ฒ ์ผ๊ด๋ ํ์๋ ์์ต๋๋ค.
2. ์ฌ๋ฐ๋ฅธ ๋๊ตฌ ๋ฐ ๊ธฐ์ ์ ์ ํํฉ๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ์ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ ๋ณต์ , ์ถฉ๋ ๊ฐ์ง ๋ฐ ํด๊ฒฐ์ ์ํ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ถ์ฐ ์์คํ ์ ์ ํํฉ๋๋ค. ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค: Cassandra, Riak, Couchbase, DynamoDB, MongoDB(์ ์ ํ ๊ตฌ์ฑ ํฌํจ).
- ๋ถ์ฐ ์บ์: Redis Cluster, Memcached.
- ๋ฉ์์ง ํ: Kafka, RabbitMQ(๋น๋๊ธฐ ์ ๋ฐ์ดํธ์ฉ).
3. ๊ฐ๋ ฅํ ์ถฉ๋ ํด๊ฒฐ์ ๊ตฌํํฉ๋๋ค.
์ถฉ๋์ด ๋ฐ์ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ง ๋ง์ญ์์ค. ์ ํ๋ฆฌ์ผ์ด์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ ์ถฉ๋ ํด๊ฒฐ ์ ๋ต(LWW, CRDT, ์ฌ์ฉ์ ์ง์ ๋ ผ๋ฆฌ)์ ์ ํํ๊ณ ์ ์คํ๊ฒ ๊ตฌํํฉ๋๋ค. ๋์ ๋์์ฑ์์ ์ฒ ์ ํ ํ ์คํธํฉ๋๋ค.
4. ๋ณต์ ์ง์ฐ ๋ฐ ์ผ๊ด์ฑ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
๋ ธ๋ ๊ฐ์ ๋ณต์ ์ง์ฐ์ ์ถ์ ํ๊ธฐ ์ํด ํฌ๊ด์ ์ธ ๋ชจ๋ํฐ๋ง์ ๊ตฌํํฉ๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ์ ํ๋๋ ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ดํดํ๊ณ ๊ณผ๋ํ ์ง์ฐ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ์ค์ ํฉ๋๋ค.
์: ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ์์์ '์ฝ๊ธฐ ๋ณต๊ตฌ ๋๊ธฐ ์๊ฐ', '๋ณต์ ๋๊ธฐ ์๊ฐ' ๋ฐ '๋ฒ์ ์ฐจ์ด'์ ๊ฐ์ ๋ฉํธ๋ฆญ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
5. ์ ์์ ์ธ ์ฑ๋ฅ ์ ํ๋ฅผ ์ํด ์ค๊ณํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ์ผ์์ ์ผ๋ก ์ผ๊ด์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ ๊ฐ์๋ ๊ธฐ๋ฅ์ผ๋ก ๊ธฐ๋ฅ์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค. ์ค๋๋ ์ฝ๊ธฐ๋ก ์ธํ ์ค์ํ ์ค๋ฅ๋ฅผ ํผํ์ญ์์ค.
6. ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ์ ์ต์ ํํฉ๋๋ค.
๊ธ๋ก๋ฒ ์์คํ ์์ ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ์ ์ฃผ์ ์์ธ์ ๋๋ค. ๋๊ธฐ ์๊ฐ์ ์ํฅ์ ์ต์ํํ๊ธฐ ์ํด ๋ณต์ ๋ฐ ๋ฐ์ดํฐ ์ก์ธ์ค ์ ๋ต์ ์ค๊ณํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ ์ ๊ณ ๋ คํ์ญ์์ค.
- ์ง์ญ ๋ฐฐํฌ: ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ๋ฐ์ดํฐ ๋ณต์ ๋ณธ์ ๋ฐฐํฌํฉ๋๋ค.
- ๋น๋๊ธฐ ์์ : ๋น๋๊ธฐ ํต์ ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ฒ๋ฆฌ๋ฅผ ์ ํธํฉ๋๋ค.
7. ํ์ ๊ต์กํฉ๋๋ค.
๊ฐ๋ฐ ๋ฐ ์ด์ ํ์ด ์ต์ข ์ ์ผ๊ด์ฑ, ๊ทธ ์๋ฏธ ๋ฐ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํจํด์ ๋ํ ๊ฐ๋ ฅํ ์ดํด๋ฅผ ๊ฐ๋๋ก ํฉ๋๋ค. ์ด๋ ์์ ์ ์ธ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๊ฒฐ๋ก
์ต์ข ์ ์ผ๊ด์ฑ์ ์ ์ถฉ์์ด ์๋๋๋ค. ํนํ ๊ธ๋ก๋ฒ ์ปจํ ์คํธ์์ ๊ฐ์ฉ์ฑ์ด ๋๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํ๋ ๊ทผ๋ณธ์ ์ธ ์ค๊ณ ์ ํ์ ๋๋ค. ์ ์ถฉ์์ ์ดํดํ๊ณ ๊ฐ์ญ ํ๋กํ ์ฝ, ๋ฒกํฐ ํด๋ก, LWW ๋ฐ CRDT์ ๊ฐ์ ์ ์ ํ ํจํด์ ์์ฉํ๊ณ ๋ถ์ผ์น๋ฅผ ๋ถ์ง๋ฐํ ๋ชจ๋ํฐ๋งํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ต์ข ์ ์ผ๊ด์ฑ์ ํ์ ํ์ฉํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ํจ๊ณผ์ ์ผ๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๋ ฅ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ต์ข ์ ์ผ๊ด์ฑ์ ๋ง์คํฐํ๊ธฐ ์ํ ์ฌ์ ์ ์ง์์ ์ธ ํ์ต๊ณผ ์ ์์ด ํ์ํ ์ฌ์ ์ ๋๋ค. ์์คํ ์ด ์งํํ๊ณ ์ฌ์ฉ์ ๊ธฐ๋์น๊ฐ ๋ณํํจ์ ๋ฐ๋ผ ์ ์ ๋ ์ํธ ์ฐ๊ฒฐ๋๋ ๋์งํธ ์ธ์์์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฐ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ ๋ต๊ณผ ํจํด๋ ๋ฐ๋ ๊ฒ์ ๋๋ค.